****************************************
*	     SPEECH.SRC               *
*   Ansteuerung des Speechprocessors   *
*          Ausgabe von Daten           *
*       ueber den Joystick-Port        *
*              ATMAS II                *
*Andreas Binner & Harald Schoenfeld '87*
****************************************

	ORG $A800

PACTL	EQU $D302 ;Kontrollreg. Port A
PORTA	EQU $D300 ;Datenreg. Port A

START	LDA #$38	 ;Directioncontrol
	STA PACTL
	LDA #$7F	 ;Bit 0-6 auf Ausgabe
	STA PORTA ;Bit 7 auf Eingabe
	LDA #$3C  ;Port A freigeben
	STA PACTL

SPEECH	LDY #0	 ;Bufferanfang
LOOP	LDA BUFFER,Y ;Wert lesen
	CMP #64	 ;letzter Wert ?
	BEQ ENDE  ;Ja -->
	STA PORTA ;Ueber Joystickports
*		 ;ausgeben
	JSR WAIT  ;Warteschleife
	ORA #64	 ;Uebergabebit:1
	STA PORTA ;Ausgeben
	JSR WAIT
	AND #63	 ;Uebergabebit:0
	STA PORTA ;Ausgeben
BUSY	LDA PORTA ;Speechprozessor
	BPL BUSY  ;fertig? 
	INY
	BNE LOOP
ENDE	LDA #$38	 ;Directioncontrol
	STA PACTL
	LDA #0	 ;8-Bits auf Eingabe
	STA PORTA
	LDA #$3C  ;Port A freigeben
	STA PACTL
	RTS

WAIT	LDX #0	 ;Warteschleife
W1	DEX
	BNE W1
	RTS

*Sprachdaten fuer "Assemblerecke"

BUFFER	DFB 24,55,7,16,28,02,45,47
	DFB 1,7,0,42,7,4
	DFB 64	 ;Enderkennung
